본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.


한정된 데이터를 학습용 데이터, 검증용 데이터, 평가용 데이터 등으로 분할하여 사용하는 기법

데이터 분할 이유

편집 원본 편집

데이터 분석 모형이 주어진 데이터에 대해서만 높은 성능을 보이는 문제를 방지하기 위해 일부 데이터로 학습을 시키고 일부 데이터로 검증을 수행한다.

데이터 분할 방법

편집 원본 편집

모형을 학습할 데이터와 평가할 데이터를 어떻게 나누느냐에 따라 아래 방법이 있다.

방법 나누는 방식 특징
홀드아웃(Holdout) 원천 데이터를 무작위로 두 분류로 나누어 하나는 학습 데이터, 하나는 평가 데이터로 쓴다. 보통 학습 70%, 평가 30% 정도로 나눈다 가장 간단하다. 한 번만 나누므로 어떻게 나뉘었는지에 따라 결과가 달라지고, 평가용으로 뺀 만큼 학습 데이터가 줄어든다
K-폴드 교차 검증(K-Fold Cross Validation) 데이터를 k개 묶음으로 나누어 k−1개로 학습하고 나머지 1개로 평가하는 일을 k번 반복한 뒤 평균한다 모든 데이터가 한 번씩 평가에 쓰인다. k번 학습하므로 계산량이 많다
LOOCV(Leave-One-Out) k를 데이터 개수 n으로 둔 K-폴드. 관측치 하나만 빼고 학습해 그 하나로 평가한다 데이터가 적을 때 쓴다. n번 학습해야 한다
부트스트랩(Bootstrap) 전체 데이터에서 복원 추출로 같은 크기의 학습 데이터를 만들고, 뽑히지 않은 데이터로 평가한다 한 번도 뽑히지 않는 데이터가 약 36.8% 생긴다. 데이터가 적을 때 쓴다
계층별 K-폴드(Stratified K-Fold) 각 묶음의 클래스 비율이 전체와 같도록 나눈다 클래스 불균형이 있는 분류 문제에 쓴다
  • 데이터를 두 분류로 나누어 하나는 학습, 하나는 평가에 쓰는 것은 홀드아웃이다.
  • 배깅, 부스팅, 앙상블은 여러 모형을 만들어 예측을 결합하는 학습 기법이지 모형을 검증하려고 데이터를 나누는 방법이 아니다. 배깅도 부트스트랩 표본을 쓰지만 목적은 모형의 분산을 줄이는 것이다.

분할 데이터 구성

편집 원본 편집

학습용, 평가용으로만 나누기도 하고 학습용, 검증용, 평가용으로 나누기도 한다.

  • 학습용 데이터(Training Set): 데이터를 학습하여 분석 모형을 만드는데 직접적으로 활용되는 데이터
  • 검증용 데이터(Validation Set): 과적합, 부적합 등 모형의 성능을 개선시키기 위한 데이터
  • 평가용 데이터(Test Set): 모델 성능 개선 및 적합성 검증용 데이터
    • 검증 세트(Validation)와 비슷하지만, 모델을 구축하거나 튜닝할 때 포함된 적 없다는 점에서 차이
  • 데이터의 대표성: 학습용 데이터와 평가용 데이터은 전체 데이터에 대한 대표성을 가져야 함
  • 시간의 방향성: 과거 데이터로부터 미래 데이터를 예측하고자 할 경우에는 데이터를 섞을 수 없음
    • 학습용 데이터에 있는 데이터보다 평가용 데이터의 모든 데이터가 미래의 것으로 구성
  • 데이터 중복 : 각 훈련, 검증, 평가 데이터셋에는 데이터 포인트의 중복이 없도록 구성

데이터 분할 비율

편집 원본 편집
  • 일반적으로 학습용:검증용:평가용 = 5:3:2 비율 많이 사용(정해진 기준 없음)
  • 학습용과 검증용은 학습 과정에서 사용하며 평가용은 학습 과정에서 사용하지 않음

모형 선정 과정

편집 원본 편집

모형 선정의 첫번째 과정으로 데이터 분할이 사용된다.

  • 1. 데이터 분할
  • 2. 분석 모형 학습
  • 3. 분석 모형 검증
  • 4. 분석 모형 선택
  • 5. 분석 모형 전개
  • 6. 분석 모형 모니터링
  • 7. 분석 모형 리모델링

데이터별 쓰임

편집 원본 편집
데이터 쓰임
학습(훈련) 데이터 모델을 학습시킨다
검증 데이터 학습 중에 하이퍼파라미터를 고르고 과적합 여부를 확인한다. 학습 데이터를 한 번 더 나누어 만든다. 검증 오차가 늘기 시작하면 학습을 멈추는 조기 종료(Early Stopping)에 쓴다
평가(테스트) 데이터 최종 모델의 성능 평가에만 쓴다. 학습에 써서는 안 되고 학습 데이터와 섞여서도 안 된다
  • "검증용 데이터는 모델 성능 평가에 사용한다" 는 틀리다. 최종 성능 평가는 테스트 데이터로 한다.